package B刷题.二分;

/**
 * @author wei.zhao
 * @description: 剑指 Offer II 068.查找插入位置
 * @date 2022年04月02日 10:53
 */
public class Code02_SearchInsert {

    /**
     * 题解：等价于>=这个数最左侧的位置；
     * 注意：可能数组中每个值均小于target，此时返回left；
     */
    public int searchInsert(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            if (nums[mid] >= target) {
                if (mid == 0 || nums[mid - 1] < target) {
                    return mid;
                }
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return left;
    }

}
